Exercício 12-02:

Reescreva a função que mostra os números na entrada ABC431DEF-901c431203FXEW9, mas usando a função verifica_padrão.

Resposta:

##############################################################################
# Parte do livro Introdução à Programação com Python
# Autor: Nilo Ney Coutinho Menezes
# Editora Novatec (c) 2010-2024
# Quarta Edição - Março/2024 - ISBN 978-85-7522-886-9
#
# Site: https://python.nilo.pro.br/
#
# Arquivo: capitulo 12/exercicio-12-02.py
##############################################################################
entrada = "ABC431DEF901c431203FXEW9"
def verifica_padrão(entrada, padrões):
    posição = 0
    for padrão in padrões:
        achou, _, fim = padrão(entrada[posição:])
        if achou > 0:
            posição += fim + 1
        else:
            return -1, -1, -1
    return 1, 0, posição - 1


def números(entrada):
    achados = 0
    fim = -1
    for i, caractere in enumerate(entrada):
        if "0" <= caractere <= "9":
            achados += 1
            fim = i
        else:
            break
    return achados, 0, fim


posição = 0
while posição < len(entrada):
    achado, inicio, fim = verifica_padrão(entrada[posição:], [números])
    if achado > 0:
        print(entrada[posição : posição + fim + 1])
        posição += fim + 1
    else:
        posição += 1
Clique aqui para baixar o arquivo